package co.com.ticci.autolavado.mysql;

import java.util.HashMap;
import java.util.List;

import co.com.ticci.autolavado.general.ManejoTransacciones;
import co.com.ticci.autolavado.interfaces.IAutolavado;
import co.com.ticci.autolavado.vo.TicciAutolavado;

public class MysqlAutolavado implements IAutolavado 
{

	private ManejoTransacciones manejoTransacciones;
	
	
	public MysqlAutolavado() 
	{
		manejoTransacciones = new ManejoTransacciones();
	}
	
	@Override
	public List<TicciAutolavado> getAllautoLavadoByEmpresa(long emprCons) 
	{
		
		HashMap< Integer, Object> parametros = new HashMap<>();
		
		parametros.put(0,emprCons);
		
		return manejoTransacciones.consultarListaGenericaNativeQuery(
				  " SELECT * 				"+
				  " FROM TICCI_AUTOLAVADO	"+
				  " WHERE EMPR_CONS = ?1 	",
				TicciAutolavado.class, parametros); 
	}
	@Override
	public List<TicciAutolavado> getAutolavadoByEstado(long empreCons,	boolean estado) 
	{
		HashMap< Integer, Object> parametros = new HashMap<>();
		parametros.put(0,empreCons);
		parametros.put(1, estado ? 1:0);
		
		return manejoTransacciones.consultarListaGenericaNativeQuery(
				  " SELECT * 					"+
				  " FROM TICCI_AUTOLAVADO		"+
				  " WHERE EMPR_CONS = ?1  AND	"+
				  " AUTO_ESTADO 	= ?2		",
				TicciAutolavado.class, parametros); 
	}
	
	@Override
	public long getUltimoConsAutolavado(long empreCons) 
	{
		HashMap< Integer, Object> parametros = new HashMap<>();
		parametros.put(0,empreCons);
		
		return  (Long) manejoTransacciones.consultarObjetoSimple(
				" SELECT IFNULL(MAX(AUTO_CONS+1),1) " + 
				" FROM TICCI_AUTOLAVADO 			" +
				" WHERE EMPR_CONS 		= ?1		", 
				Long.class, parametros);
		
	}
}
